package com.aki.ai_property.dao;

import com.aki.ai_property.dto.SubscriptionDto;
import com.aki.ai_property.dto.SubscriptionExportDto;
import com.aki.ai_property.dto.SubscriptionSexDto;
import com.aki.ai_property.entity.Subscription;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 　　　　　　　　　,-､　　 　　　　　　　 ,.-､
 * 　　　　　　　 ./:::::＼　　　　　　　 ／::::ヽ
 * 　　　　　　　/::::::::::::;ゝ–——– ､:::::::::|
 * 　　　　　　 /,.-‐”"´ 　　　　　　 ＼ ::::::::|
 * 　　　　　／　 　　　　　　　　　 　 ヽ､::::|
 * 　　　　/　　　　●　　　 　 　 　 　　 　 　ヽ|
 * 　　 　 l　 　, , ,　　 　 　 　 　 　 ●　　　 l
 * 　　　 .|　　　 　　　　(_人__丿 　 　　､､､　 　|
 * 　 　 　l　　　　　　　　　　 　　　　　　 　　l
 * 　　　　` ､　　　　　　　　 　 　 　 　 　 　 /
 * 　　　　　　`ｰ ､__　　　 　 　 　　　　　　 ／
 * 　　　　　　　　　/`”’ｰ‐‐——‐‐‐┬”’"
 *
 * @author zhu
 * @DATE 2022/8/27
 */
public interface SubscriptionDao {
    /**
     * 新增
     * @param subscription
     * @return
     */
    int save(Subscription subscription);

    /**
     * 修改
     * @param subscription
     * @return
     */
    int update(Subscription subscription);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(int id);

    /**
     * 查询总条数
     * @param subname
     * @return
     */
    long selectCount(String subname);

    /**
     * 查询数据 分页
     * @param subname
     * @param start
     * @param size
     * @return
     */
    List<SubscriptionDto> selectPage(@Param("subname")String subname,@Param("start") int start,@Param("size") int size);

    /**批量删除 根据id*/
    int delByIds(int[] ids);

    /**查询预约人的所有信息*/
    List<SubscriptionExportDto> all();

    /**
     * 批量新增*/
    int saveBatch(List<Subscription> list);

    /**
     * 统计每种性别的人数*/
    List<SubscriptionSexDto> selectSex();


}
